package enumdemo;

public enum TestEnum {
    /*
    * java当中的枚举类非常特殊 都是默认继承于 Java原生的Enum类
    * */

    //枚举对象
    /*
    * 优点
    * 将常量对象组织起来统一进行管理
    *
    * */
    RED(1,"RED"),WHITE(2,"WHITE"),GREEN(3,"GREEN");
    public String color;
    public int ordinal;

    private TestEnum(int ordinal,String color){
        this.ordinal = ordinal;
        this.color = color;
    }
    //public TestEnum(){}//我们自己写的枚举类当中 构造方法默认是私有的

    public static void mian1(String[] args){
        TestEnum testEnum = TestEnum.RED;
        switch(testEnum){
            case RED:
                System.out.println("红色");
                break;
            case GREEN:
                System.out.println("绿色");
                break;
            case WHITE:
                System.out.println("白色");
                break;
            default:
                break;
        }
    }

    public static void main2(String[] args) {
        TestEnum[] testEnums  = TestEnum.values();
        //在Java中，values() 方法实际上是一个由编译器为每个枚举类型自动生成的静态方法
        // 而不是 Enum 类本身提供的一个方法。
        // 这是因为 values() 方法的行为是针对每个具体枚举类型的，它返回该枚举类型中定义的所有枚举常量的数组
        for(int i = 0;i < testEnums.length; i++){
            System.out.println(testEnums[i]+" "+testEnums[i].ordinal());//当前枚举的序号
        }
        System.out.println("-----------");
        TestEnum testEnum = TestEnum.valueOf("RED");//把一个字符串 转化为枚举对象
        System.out.println(testEnum);
        System.out.println(RED.compareTo(WHITE));

    }

}
